home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / docs / CDROM-HOWTO < prev    next >
Text File  |  1997-01-29  |  70KB  |  1,765 lines

  1.   The Linux CD-ROM HOWTO
  2.   Jeff Tranter, jeff_tranter@pobox.com
  3.   v1.12, 1 November 1997
  4.  
  5.   This document describes how to install, configure, and use CD-ROM
  6.   drives under Linux. It lists the supported hardware and answers a num¡
  7.   ber of frequently asked questions. The intent is to bring new users up
  8.   to speed quickly and reduce the amount of traffic in the Usenet news
  9.   groups and mailing lists.
  10.  
  11.   1.  Introduction
  12.  
  13.   This is the Linux CD-ROM HOWTO. It is intended as a quick reference
  14.   covering everything you need to know to install and configure CD-ROM
  15.   hardware under Linux. Frequently asked questions related to CD-ROM are
  16.   answered, and references are given to other sources of information
  17.   related to CD-ROM applications and technology.
  18.  
  19.   1.1.  Acknowledgments
  20.  
  21.   Much of this information came from the documentation and source files
  22.   provided with the Linux kernel, the Internet alt.cdrom newsgroup FAQ,
  23.   and input from Linux users.
  24.  
  25.   Thanks to the SGML Tools package, this HOWTO is available in several
  26.   formats, all generated from a common source file.
  27.  
  28.   1.2.  Revision History
  29.  
  30.      Version 1.0
  31.         First version made publicly available
  32.  
  33.      Version 1.1
  34.         CDU33A is explicitly supported as of 1.1.20 kernel; notes on
  35.         Reveal FX; info on reading audio tracks; info on some alpha
  36.         drivers; added troubleshooting section; a few other minor
  37.         additions
  38.  
  39.      Version 1.2
  40.         ISO-9660 file systems must be mounted read-only starting with
  41.         1.1.33 kernel; clarified that SB16 SCSI is supported and newer
  42.         Aztech drives are not supported; references to photocd and xpcd
  43.         programs; note on new SBPCD auto eject feature
  44.  
  45.      Version 1.3
  46.         Minor change to the way SBPCD eject feature is disabled starting
  47.         with the 1.1.49 kernel; added info on XA discs and how to
  48.         identify them
  49.  
  50.      Version 1.4
  51.         HOWTO now available in other languages; IBM and Longshine drives
  52.         now supported by SBPCD; alpha driver for Aztech drives; CDU-33
  53.         driver no longer auto-probes, supports PhotoCD and audio; more
  54.         than 2 SCSI drives are supported; new driver for IDE; reminder
  55.         to check drive jumpers; can now set SBPCD auto-eject with IOCTL;
  56.         list drivers with multisession support; question on flashing
  57.         light on CDU-33
  58.  
  59.      Version 1.5
  60.         A long overdue update (I've been busy); document placed under
  61.         GPL; info on many new kernel drivers; more info on configuration
  62.         and troubleshooting; lots of HTML links added; many other minor
  63.         changes
  64.  
  65.      Version 1.6
  66.         Added link to eject program; question on file permission patch;
  67.         link to Creative Labs Web site; reference to ATA/EIDE FAQ and
  68.         FTP site; note that many Creative Labs and Mitsumi drives are
  69.         now EIDE; mention Supermount; drives listed as supporting
  70.         digital data are obsolete, refer to cdda2wav; more info on
  71.         writing CDs; multi-disc EIDE drive info; a few typos fixed
  72.  
  73.      Version 1.7
  74.         new kernel version; most README files moved to
  75.         /usr/src/linux/Documentation; some drivers are no longer
  76.         experimental; a few more supported drives; emphasize that most
  77.         drives are now IDE/ATAPI; added questions on Plug and Play
  78.         support and identifying drive speed; vger mailing lists being
  79.         shut down; other miscellaneous minor changes
  80.  
  81.      Version 1.8
  82.         question on why CD-ROM stops working after install; aztcd driver
  83.         now supports two CyCDROM drives; more pleading not to use SBPCD
  84.         driver with IDE drives; some ATAPI multi-disc changer support;
  85.         note on (lack of) support for parallel port drives; latest
  86.         stable kernel is 2.0; other miscellaneous minor changes
  87.  
  88.      Version 1.9
  89.         removed some questions that were very old and now obsolete; new
  90.         e-mail address for author; Chinese translation available; fixed
  91.         some links to point to latest software packages; more
  92.         information on multimedia book; minor spelling and grammatical
  93.         changes
  94.  
  95.      Version 1.10
  96.         clarify that new Aztech drives are ATAPI; added CDU31A options
  97.         for modular driver; mount option for reading hidden files; added
  98.         six month "best before" date; new URL to web page for book;
  99.         minor spelling and grammatical changes
  100.  
  101.      Version 1.11
  102.         added reference for parallel port drives; added info on bpcd
  103.         driver; new URL for Chinese version; alternate CR-56x driver;
  104.         info on bootable CDs; answered question on CD-ROM API; Linux
  105.         Multimedia Guide is now available in French and Japanese
  106.  
  107.      Version 1.12
  108.         added link to Polish translation; CD Writing is no longer a
  109.         mini-HOWTO; added two questions related to Joliet filesystem
  110.  
  111.   1.3.  New Versions Of This Document
  112.  
  113.   New versions of this document will be periodically posted to the
  114.   comp.os.linux.answers newsgroup. They will also be uploaded to various
  115.   anonymous ftp sites that archive such information including
  116.   <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/>.
  117.  
  118.   Hypertext versions of this and other Linux HOWTOs are available on
  119.   many World-Wide-Web sites, including
  120.   <http://sunsite.unc.edu/LDP/HOWTO/>. Most Linux CD-ROM distributions
  121.   include the HOWTOs, often under the /usr/doc directory, and you can
  122.   also buy printed copies from several vendors. Sometimes the HOWTOs
  123.   available from CD-ROM vendors, ftp sites, and printed format are out
  124.   of date. If the date on this HOWTO is more than six months in the
  125.   past, then a newer copy is probably available on the Internet.
  126.  
  127.   A French translation of this document, by Bruno Cornec
  128.   (cornec@stna7.stna.dgac.fr) is available at
  129.   <ftp://ftp.ibp.fr/pub2/linux/french/docs/HOWTO/>.
  130.  
  131.   A Japanese translation by Itsushi Minoura (minoura@uni.zool.s.u-
  132.   tokyo.ac.jp) is available from  <http://jf.linux.or.jp/JF/JF.html/>.
  133.  
  134.   A Chinese translation (BIG-5 encoding) by Yung-kang Wu
  135.   (yorkwu@ms4.hinet.net) is available from
  136.   <http://linux.ntcic.edu.tw/~yorkwu/linux/howto/cdrom/>.
  137.  
  138.   A Polish translation by Bartosz Maruszewski
  139.   (b.maruszewski@zsmeie.torun.pl) is available from
  140.   <http://www.jtz.org.pl/Html/CDROM-HOWTO.pl.html>.
  141.  
  142.   Most translations of this and other Linux HOWTOs can also be found at
  143.   <http://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/> and
  144.   <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/>.
  145.  
  146.   If you make a translation of this document into another language, let
  147.   me know and I'll include a reference to it here.
  148.  
  149.   1.4.  Feedback
  150.  
  151.   I rely on you, the reader, to make this HOWTO useful. If you have any
  152.   suggestions, corrections, or comments, please send them to me,
  153.   jeff_tranter@pobox.com, and I will try to incorporate them in the next
  154.   revision.
  155.  
  156.   I am also willing to answer general questions on CD-ROM under Linux,
  157.   as best I can. Before doing so, please read all of the information in
  158.   this HOWTO, and then send me detailed information about the problem.
  159.   Please do not ask me about using CD-ROM drives under operating systems
  160.   other than Linux.
  161.  
  162.   If you publish this document on a CD-ROM or in hardcopy form, a
  163.   complimentary copy would be appreciated; mail me for my postal
  164.   address. Also consider making a donation to the Linux Documentation
  165.   Project to help support free documentation for Linux. Contact the
  166.   Linux HOWTO coordinator, Greg Hankins (gregh@sunsite.unc.edu), for
  167.   more information.
  168.  
  169.   1.5.  Distribution Policy
  170.  
  171.   Copyright 1995-1997 Jeff Tranter.
  172.  
  173.   This HOWTO is free documentation; you can redistribute it and/or
  174.   modify it under the terms of the GNU General Public License as
  175.   published by the Free Software Foundation; either version 2 of the
  176.   License, or (at your option) any later version.
  177.  
  178.   This document is distributed in the hope that it will be useful, but
  179.   without any warranty; without even the implied warranty of
  180.   merchantability or fitness for a particular purpose.  See the GNU
  181.   General Public License for more details.
  182.  
  183.   You can obtain a copy of the GNU General Public License by writing to
  184.   the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  185.   USA.
  186.  
  187.   2.  CD-ROM Technology
  188.  
  189.   "CD-ROM is read-only memory, and audio compact disc system is
  190.   available as package-media of digital data for those purpose. For
  191.   playing audio CD, please insert Head-phone jack."
  192.   --- from a CD-ROM instruction manual
  193.  
  194.   Don't Panic! The world of CD-ROM technology is not as confusing as
  195.   your instruction manual.
  196.  
  197.   CD-ROM stands for Compact Disc Read-Only Memory, a mass storage medium
  198.   utilizing an optical laser to read microscopic pits on the aluminized
  199.   layer of a polycarbonate disc. The same format is used for audio
  200.   Compact Discs. Because of its high storage capacity, reliability, and
  201.   low cost, CD-ROM has become an increasingly popular storage media.
  202.  
  203.   The storage capacity of a CD-ROM disc is approximately 650 megabytes,
  204.   equivalent to over 500 high density 3.5" floppy disks or roughly
  205.   250,000 typed pages.
  206.  
  207.   First generation drives (known as single speed), provided a transfer
  208.   rate of approximately 150 kilobytes per second.  Hardware
  209.   manufacturers then introduced double speed (300 kB/sec), quad speed
  210.   (600 kB/sec), and higher. As I write this, 24 times (24X) drives are
  211.   readily available and affordable.
  212.  
  213.   Most CD-ROM drives use either the Small Computer Systems Interface
  214.   (SCSI), ATAPI enhanced IDE interface, or a vendor proprietary
  215.   interface. They also typically support playing audio CDs via an
  216.   external headphone jack or line level output. Some CDs also allow
  217.   reading the frames of data from audio CDs in digital form.
  218.  
  219.   CD-ROMs are usually formatted with an ISO-9660 (formerly called High
  220.   Sierra) file system. This format restricts filenames to the MS-DOS
  221.   style (8+3 characters). The Rock Ridge Extensions use undefined fields
  222.   in the ISO-9660 standard to support longer filenames and additional
  223.   Unix style information (e.g. file ownership, symbolic links, etc.).
  224.  
  225.   PhotoCD is a standard developed by Kodak for storing photographic
  226.   images as digital data on a CD-ROM. With appropriate software, you can
  227.   view the images on a computer, manipulate them, or send them to a
  228.   printer. Information can be added to a PhotoCD at a later date; this
  229.   is known as multi-session capability.
  230.  
  231.   CD recorders (CD-R) are also available and are becoming increasingly
  232.   affordable. They use a different media and specialized equipment for
  233.   recording, but the resulting disc can be read by any CD-ROM drive.
  234.  
  235.   In the future CD-ROM drive vendors are expected to offer new
  236.   technologies that will increase storage capacity by an order of
  237.   magnitude.
  238.  
  239.   3.  Supported Hardware
  240.  
  241.   This section lists the CD-ROM drivers and interfaces that are
  242.   currently supported under Linux. The information here is based on the
  243.   latest stable Linux kernel, which at time of writing was version
  244.   2.0.31. A development kernel (2.1.x versions) is also available but is
  245.   not guaranteed to be stable.
  246.  
  247.   This information is only valid for Linux on the Intel platform. Much
  248.   of it should be applicable to Linux on other processor architectures,
  249.   but I have no first hand experience or information.
  250.  
  251.   3.1.  ATAPI CD-ROM Drives
  252.  
  253.   ATAPI (ATA Packet Interface) is a protocol for controlling mass
  254.   storage devices. It builds on the ATA (AT Attachment) interface, the
  255.   official ANSI standard name for the IDE interface developed for hard
  256.   disk drives. ATAPI is commonly used for hard disks, CD-ROM drives,
  257.   tape drives, and other devices.  Currently the most popular type of
  258.   interface, it offers most of the functionality of SCSI, without the
  259.   need for an expensive controller or cables.
  260.  
  261.   The Linux kernel has a device driver that should work with any ATAPI
  262.   compliant CD-ROM drive. Vendors shipping compatible drives include
  263.   Aztech, Mitsumi, NEC, Sony, Creative Labs, and Vertos. If you have
  264.   recently purchased a CD-ROM drive, especially if it is quad speed or
  265.   faster, it is almost guaranteed to be IDE/ATAPI.
  266.  
  267.   3.2.  SCSI CD-ROM Drives
  268.  
  269.   SCSI (Small Computer Systems Interface) is a popular format for CD-ROM
  270.   drives. Its chief advantages are a reasonably fast transfer rate,
  271.   multi-device capability, and support on a variety of computer
  272.   platforms. Some disadvantages of SCSI are the need for a relatively
  273.   expensive controller card and cables.
  274.  
  275.   Any SCSI CD-ROM drive with a block size of 512 or 2048 bytes should
  276.   work under Linux; this includes the vast majority of CD-ROM drives on
  277.   the market.
  278.  
  279.   You will also need a supported SCSI controller card; see the SCSI
  280.   HOWTO for more information on interface hardware.
  281.  
  282.   Note that some CD-ROMs include a proprietary controller with a
  283.   modified interface that is not fully SCSI compatible (e.g. it may not
  284.   support adding other SCSI devices on the bus). These will most likely
  285.   not work under Linux.
  286.  
  287.   3.3.  Proprietary CD-ROM Drives
  288.  
  289.   Several CD-ROM drives using proprietary interfaces are available; the
  290.   interface is often provided on a sound card. Simple interface cards
  291.   equivalent to that provided on the sound card are also available.
  292.   These drives generally tend to be lower in cost and smaller than SCSI
  293.   drives. Their disadvantages are the lack of standardization and
  294.   expandability.
  295.  
  296.   Note that proprietary interfaces are sometimes erroneously referred to
  297.   as IDE interfaces, because like IDE hard disks, they use a simple
  298.   interface based on the PC/AT bus. To add to the confusion, some
  299.   vendors, most notably Creative Labs, have shipped many different types
  300.   of CD-ROM drives and have offered proprietary, SCSI, and ATAPI
  301.   interfaces on their sound cards.
  302.  
  303.   The table below lists the proprietary CD-ROM drives that are known to
  304.   be supported under Linux. Drivers for additional devices may be
  305.   available in the latest development kernels or as kernel patches. The
  306.   latter can most often be found at
  307.   <ftp://sunsite.unc.edu/pub/Linux/kernel/patches/cdrom/>. Also check
  308.   the README files included with the kernel distribution, usually
  309.   installed in /usr/src/linux/Documentation/cdrom, for the latest
  310.   information.
  311.  
  312.                   Proprietary CD-ROM Drives
  313.  
  314.   Vendor          Model           Kernel Driver   Notes
  315.   ------          -----           -------------   --------
  316.   Panasonic       CR-521          sbpcd           Note 1
  317.   Panasonic       CR-522          sbpcd           Note 1
  318.   Panasonic       CR-523          sbpcd           Note 1
  319.   Panasonic       CR-562          sbpcd           Note 1
  320.   Panasonic       CR-563          sbpcd           Note 1
  321.   Creative Labs   CD-200          sbpcd
  322.   IBM             External ISA    sbpcd           Note 2
  323.   Longshine       LCS-7260        sbpcd
  324.   Teac            CD-55A          sbpcd
  325.   Sony            CDU-31A         cdu31a
  326.   Sony            CDU-33A         cdu31a
  327.   Sony            CDU-535         sonycd535       Note 3
  328.   Sony            CDU-531         sonycd535
  329.   Aztech          CDA268-01A      aztcd           Note 4
  330.   Orchid          CDS-3110        aztcd
  331.   Okano/Wearnes   CDD110          aztcd
  332.   Conrad          TXC             aztcd
  333.   CyCDROM         CR520ie         aztcd
  334.   CyCDROM         CR940ie         aztcd
  335.   GoldStar        R420            gscd            Note 5
  336.   Philips/LMS     CM206           cm206           Note 6
  337.   Mitsumi         CRMC LU005S     mcd/mcdx        Note 7, 8
  338.   Mitsumi         FX001           mcd/mcdx        Note 7, 8
  339.   Optics Storage  Dolphin 8000AT  optcd
  340.   Lasermate       CR328A          optcd
  341.   Sanyo           H94A            sjcd
  342.   various         various         isp16           Note 9
  343.   MicroSolutions  Backpack        bpcd
  344.  
  345.   Notes:
  346.  
  347.   1. These drives may be sold under the names Creative Labs, Panasonic,
  348.      Matsushita, or Kotobuki.
  349.  
  350.   2. This drive is the same as a Panasonic CR-562.
  351.  
  352.   3. May also be sold under the Procomm name.
  353.  
  354.   4. This driver is for the CDA268-01A only. Other models, including the
  355.      CDA268-03I and CDA269-031SE are not proprietary and should use the
  356.      IDECD (ATAPI) kernel driver.
  357.  
  358.   5. May also be sold as part of a Reveal Multimedia Kit.
  359.  
  360.   6. The Philips CM205 is not supported by this driver, but there is a
  361.      separate alpha release driver available from ftp://sunsite.unc.edu
  362.      in /pub/Linux/kernel/patches/cdrom/lmscd0.4.tar.gz
  363.  
  364.   7. May also be sold under the Radio Shack name.
  365.  
  366.   8. There are two drivers available. "mcd" is the original one, and
  367.      "mcdx" is a newer driver with more features (but possibly less
  368.      stable).
  369.  
  370.   9. This driver works with CD-ROM drives that are attached to the
  371.      interface on an ISP16, MAD16 or Mozart sound card.
  372.  
  373.   If a drive listed here is not supported by your kernel, you probably
  374.   need to upgrade to a newer version.
  375.  
  376.   If your drive is not one of the models listed here, particularly if it
  377.   was bought recently and is quad speed or faster, it probably uses the
  378.   IDE/ATAPI interface listed in a previous section. The single most
  379.   common error among Linux CD-ROM users is to assume that any drive
  380.   connected to a SoundBlaster card should use the SBPCD driver. Creative
  381.   Labs and most other vendors are no longer selling proprietary
  382.   interface drives, they are following the standard ATAPI/IDE interface.
  383.  
  384.   3.4.  Parallel Port Drives
  385.  
  386.   Some vendors sell CD-ROM drives that attach via a parallel port.  The
  387.   only drive of this type that is currently supported in the Linux
  388.   kernel is the MicroSolutions Backpack.
  389.  
  390.   Linux kernel drivers for several more of these drives are available
  391.   separately as kernel patches or loadable modules. For the latest
  392.   information check  <http://www.torque.net/linux-pp.html>.
  393.  
  394.   3.5.  Alternate Drivers
  395.  
  396.   There is an alternate kernel driver available for Panasonic/Matsushita
  397.   CR-56x drives written by Zoltan Vorosbaranyi. It can be found at
  398.   <ftp://ftp.tarki.hu/pub/linux/pcd/pcd-0.29.tar.gz>.
  399.  
  400.   4.  Installation
  401.  
  402.   Installation of a CD-ROM under Linux consists of these steps:
  403.  
  404.   1. Installing the hardware.
  405.  
  406.   2. Configuring and building the Linux kernel.
  407.  
  408.   3. Creating device files and setting boot time parameters
  409.  
  410.   4. Booting the Linux kernel.
  411.  
  412.   5. Mounting the media.
  413.  
  414.   The next sections will cover each of these steps in detail.
  415.  
  416.   4.1.  Installing the Hardware
  417.  
  418.   Follow the manufacturer's instructions for installing the hardware or
  419.   have your dealer perform the installation. The details will vary
  420.   depending on whether the drive is internal or external and on the type
  421.   of interface used. There are no special installation requirements for
  422.   Linux. You may need to set jumpers on the drive and/or interface card
  423.   for correct operation; some of the kernel drivers include README files
  424.   that include this information.
  425.  
  426.   As explained in the file ide-cd, ATAPI CD-ROMS should be jumpered as
  427.   "single" or "master", and not "slave" when only one IDE device is
  428.   attached to an interface (although this restriction is no longer
  429.   enforced with recent kernels).
  430.  
  431.   4.2.  Configuring and Building the Kernel
  432.  
  433.   When initially installing Linux from CD-ROM you will likely be using a
  434.   boot and/or root disk provided as part of a Linux distribution. If
  435.   possible, you should choose a boot disk with the kernel driver for
  436.   your CD-ROM device type. If you cannot find a boot disk with the
  437.   necessary CD-ROM driver, you have several options:
  438.  
  439.   1. Install over a network
  440.  
  441.   2. Boot DOS, and install the Linux files onto your hard disk
  442.  
  443.   3. Boot DOS, and create a set of floppies to install Linux
  444.  
  445.   4. Find someone who can build you a boot disk with the needed CD-ROM
  446.      driver
  447.  
  448.   The Linux Installation HOWTO
  449.   <http://sunsite.unc.edu/LDP/HOWTO/Installation-HOWTO.html> has more
  450.   information on installing Linux. If you purchased Linux on CD-ROM, it
  451.   likely also came with some installation instructions (that little
  452.   booklet inside the jewel case, and/or files on the CD).
  453.  
  454.   Once Linux has initially been installed, most users will want to
  455.   compile their own kernel, usually for one of these reasons:
  456.  
  457.   ╖  to support a CD-ROM drive or other hardware
  458.  
  459.   ╖  to upgrade to a newer kernel release
  460.  
  461.   ╖  to free up memory resources by minimizing the size of the kernel
  462.  
  463.   The Linux Kernel HOWTO <http://sunsite.unc.edu/LDP/HOWTO/Kernel-
  464.   HOWTO.html> should be consulted for the details of building a kernel.
  465.   I will just mention here some issues that are specific to CD-ROM
  466.   drives.
  467.  
  468.   Obviously, you need to compile in support for your CD-ROM drive when
  469.   you do a "make config".
  470.  
  471.   If you have an ATAPI CD-ROM drive, you need to answer yes to the
  472.   questions:
  473.  
  474.        Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]
  475.        Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [Y/n/?]
  476.  
  477.   For SCSI CD-ROM drives, enable these options:
  478.  
  479.        SCSI support (CONFIG_SCSI) [Y/n/m/?]
  480.        SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]
  481.  
  482.   Also enable support for your SCSI host adapter when prompted, e.g.
  483.  
  484.        Adaptec AHA152X support (CONFIG_SCSI_AHA152X) [Y/n/m/?]
  485.  
  486.   For proprietary interface CD-ROM drives, enable the appropriate
  487.   driver. You can use the table listed previously to determine the
  488.   driver to use for your model.
  489.  
  490.   Virtually all CD-ROMs use the ISO-9660 file system, so you must also
  491.   enable:
  492.  
  493.        ISO9660 cdrom filesystem support (CONFIG_ISO9660_FS) [Y/n/m/?]
  494.  
  495.   Although not needed for CD-ROM operation, if you have a sound card
  496.   that is supported under Linux you might want to enable and configure
  497.   the kernel sound driver at this time as well. The Sound HOWTO
  498.   <http://sunsite.unc.edu/LDP/HOWTO/Sound-HOWTO.html> can be a useful
  499.   reference here.
  500.  
  501.   You should then follow the usual procedure for building the kernel and
  502.   installing it. Don't boot with the new kernel until you create the
  503.   device files and set up any boot time parameters as described in the
  504.   next section.
  505.  
  506.   The ISO-9660 filesystem and almost all of the CD-ROM drivers can be
  507.   built as loadable kernel modules. This scheme allows the kernel
  508.   drivers to be loaded and unloaded without rebooting the kernel,
  509.   freeing up memory. I recommend you get your CD-ROM installation
  510.   running using compiled-in drivers first. How to use modules is
  511.   described in the modules documentation and the Kernel HOWTO
  512.   <http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html>.
  513.  
  514.   If a drive type listed here is not supported by your kernel, you
  515.   likely need to upgrade to a newer version.
  516.  
  517.   It is possible that you need to use a driver that is distributed
  518.   separately from the kernel source code. This usually involves patching
  519.   the kernel. Again, the Kernel HOWTO
  520.   <http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html> explains how to
  521.   do this.
  522.  
  523.   Note that there is a menu-based kernel configuration program invoked
  524.   by "make menuconfig" and an X11-based graphical configuration invoked
  525.   as "make xconfig". All three configuration methods offer on-line help.
  526.  
  527.   4.3.  Creating Device Files and Setting Boot Time Parameters
  528.  
  529.   The kernel uses device files to identify which device driver to use.
  530.   If you are running a standard Linux distribution you may have created
  531.   the necessary device files during installation. Under Slackware Linux,
  532.   for example, there is a menu-based setup tool that includes CD-ROM
  533.   setup, and most systems have a /dev/MAKEDEV script. If you don't use
  534.   these methods, you can use the more manual procedure listed in this
  535.   section. Even if you use either of these methods, it is recommended
  536.   that you at least verify the device files against the information in
  537.   this section.
  538.  
  539.   You create the device file by running the shell commands indicated for
  540.   your drive type. This should be done as user root. Note that some
  541.   Linux distributions may use slightly different CD-ROM device names
  542.   from those listed here.
  543.  
  544.   It is recommended that you also create a symbolic link to the CD-ROM
  545.   device to make it easier to remember. For example, for an IDE CD-ROM
  546.   drive that is the second device on the secondary interface, the link
  547.   would be created using
  548.  
  549.        # ln -s /dev/hdd /dev/cdrom
  550.  
  551.   If you want to play audio CDs, you will need to set the protection on
  552.   the device file (the real file, not the symbolic link to it) to allow
  553.   all users to read, e.g.
  554.  
  555.        # chmod 664 /dev/hdd
  556.        # ls -l /dev/hdd
  557.        brw-rw-r--   1 root     disk      22,  64 Feb  4  1995 /dev/hdd
  558.  
  559.   When booting Linux, the device drivers attempt to determine whether
  560.   the appropriate devices are present, typically by probing specific
  561.   addresses. Many of the drivers auto-probe at several addresses, but
  562.   because of differences in configuration, possible device conflicts,
  563.   and hardware limitations, the drivers sometimes need help identifying
  564.   the addresses and other parameters. Most drivers support an option on
  565.   the kernel command line to pass this information to the device driver.
  566.   This can be done interactively, or more commonly, configured into your
  567.   boot loader. With LILO, for example, you would add an append command
  568.   such as the following to your /etc/lilo.conf file:
  569.  
  570.        append = "sbpcd=0x230,SoundBlaster"
  571.  
  572.   See the LILO documentation for more information.
  573.  
  574.   In the next section I discuss issues specific to individual device
  575.   drivers, including device files, boot parameters, and the capabilities
  576.   of the different drivers. You probably only need to read the section
  577.   relevant to your drive type. The README files are usually found in the
  578.   directory /usr/src/linux/Documentation/cdrom.
  579.  
  580.   4.3.1.  Sbpcd Driver
  581.  
  582.          Principal author: Eberhard Moenkeberg (emoenke@gwdg.de)
  583.     Multi-session support: yes (but not all drives)
  584.    Multiple drive support: yes
  585.   Loadable module support: yes
  586.      Reading audio frames: yes (CR-562, CR-563, CD-200 only)
  587.              Auto-probing: yes
  588.               Device file: /dev/sbpcd, major 25
  589.        Configuration file: sbpcd.h
  590.      Kernel config option: Matsushita/Panasonic CDROM support?
  591.               README file: sbpcd
  592.  
  593.   This driver accepts a kernel command line of the form:
  594.  
  595.        sbpcd=<io-address>,<interface-type>
  596.  
  597.   where the first parameter is the base address of the device (e.g.
  598.   0x230), and <interface-type> is one of "SoundBlaster", "LaserMate", or
  599.   "SPEA". See the file sbpcd.h for hints on what interface type to use.
  600.   Using sbpcd=0 disables auto-probing, disabling the driver.
  601.  
  602.   The device file can be created using:
  603.  
  604.        # mknod /dev/sbpcd b 25 0
  605.  
  606.   Up to four drives per controller are supported. The next three drives
  607.   on the first controller would use minor device numbers 1 through 3.
  608.   If you have more than one controller, create devices with major
  609.   numbers 26, 27, and 28, up to a maximum of 4 controllers (this is 16
  610.   CD-ROM drives in total; hopefully enough for most users :-).
  611.  
  612.   See the file sbpcd for more information on this driver.
  613.  
  614.   If you recently bought a CD-ROM drive, don't assume that if it
  615.   connects to a SoundBlaster card it should use this kernel driver. Most
  616.   CD-ROM drives being sold by Creative Labs are now EIDE/ATAPI drives.
  617.  
  618.   4.3.2.  Sonycdu535 Driver
  619.  
  620.          Principal author: Ken Pizzini (ken@halcyon.com)
  621.     Multi-session support: no
  622.    Multiple drive support: no
  623.   Loadable module support: yes
  624.      Reading audio frames: no
  625.              Auto-probing: no
  626.               Device file: /dev/sonycd535, major 24
  627.        Configuration file: sonycd535.h
  628.      Kernel config option: Sony CDU535 CDROM support?
  629.               README file: sonycd535
  630.  
  631.   This driver accepts a kernel command line of the form:
  632.  
  633.        sonycd535=<io-address>
  634.  
  635.   where <io-address> is the base address of the controller (e.g. 0x320).
  636.   Alternatively you can set the address in the file sonycd535.h and
  637.   compile it in.
  638.  
  639.   The device file can be created using:
  640.  
  641.        # mknod /dev/sonycd535 b 24 0
  642.  
  643.   Some Linux distributions use /dev/sonycd for this device.  Older
  644.   versions of the driver used major device number 21; make sure your
  645.   device file is correct.
  646.  
  647.   This driver was previously distributed as a patch but is now part of
  648.   the standard kernel. See the file sonycd535 for more information on
  649.   this driver.
  650.  
  651.   4.3.3.  Cdu31a Driver
  652.  
  653.          Principal author: Corey Minyard (minyard@-rch.cirr.com)
  654.     Multi-session support: yes
  655.    Multiple drive support: no
  656.   Loadable module support: yes
  657.      Reading audio frames: yes
  658.              Auto-probing: no
  659.               Device file: /dev/cdu31a, major 15
  660.        Configuration file: cdu31a.h
  661.      Kernel config option: Sony CDU31A/CDU33A CDROM support?
  662.               README file: cdu31a
  663.  
  664.   This driver accepts a kernel command line of the form:
  665.  
  666.        cdu31a=<io-address>,<interrupt>,PAS
  667.  
  668.   The first number is the I/O base address of the card (e.g. 0x340). The
  669.   second is the interrupt number to use (0 means to use polled i/o). The
  670.   optional third parameter should be "PAS" if the drive is connected to
  671.   a Pro-Audio Spectrum 16 sound card, otherwise left blank.
  672.  
  673.   If the driver is loaded as a module, it uses a slightly different
  674.   format. When loading the driver using the modprobe or insmod command,
  675.   the parameters take the form:
  676.  
  677.        cdu31a_port=<io-address> cdu31a_irq=<interrupt>
  678.  
  679.   The base io-address is required while the interrupt number is
  680.   optional.
  681.  
  682.   The device file can be created using:
  683.  
  684.        # mknod /dev/cdu31a b 15 0
  685.  
  686.   See the file cdu31a for more information on this driver.
  687.  
  688.   Also see the Web page put together by Jeffrey Oxenreider
  689.   (zureal@infinet.com) that covers a lot of common problems with these
  690.   drives. It can be found at
  691.   <http://www.infinet.com/~zureal/cdu31a.html>.
  692.  
  693.   4.3.4.  Aztcd Driver
  694.  
  695.          Principal author: Werner Zimmermann (zimmerma@rz.fht-esslingen.de)
  696.     Multi-session support: yes
  697.    Multiple drive support: no
  698.   Loadable module support: yes
  699.      Reading audio frames: no
  700.              Auto-probing: no
  701.               Device file: /dev/aztcd0, major 29
  702.        Configuration file: aztcd.h
  703.      Kernel config option: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support?
  704.               README file: aztcd
  705.  
  706.   This driver accepts a kernel command line of the form:
  707.  
  708.        aztcd=<io-address>
  709.  
  710.   where the parameter is the I/O base address of the card (e.g. 0x340).
  711.  
  712.   The device file can be created using:
  713.  
  714.        # mknod /dev/aztcd0 b 29 0
  715.  
  716.   Note that this driver is for the CDA268-01A only. Other models,
  717.   including the CDA268-03I and CDA269-031SE are not proprietary and
  718.   should use the IDECD (ATAPI) kernel driver.
  719.  
  720.   See the file aztcd for more information on this driver.
  721.  
  722.   4.3.5.  Gscd Driver
  723.  
  724.          Principal author: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de)
  725.     Multi-session support: no
  726.    Multiple drive support: no
  727.   Loadable module support: yes
  728.      Reading audio frames: no
  729.              Auto-probing: no
  730.               Device file: /dev/gscd0, major 16
  731.        Configuration file: gscd.h
  732.      Kernel config option: Goldstar R420 CDROM support?
  733.               README file: gscd
  734.  
  735.   This driver accepts a kernel command line of the form:
  736.  
  737.        gscd=<io-address>
  738.  
  739.   specifying the I/O base address of the card (e.g. 0x340).
  740.  
  741.   The device file can be created using:
  742.  
  743.        # mknod /dev/gscd0 b 16 0
  744.  
  745.   See the file gscd and the World-Wide Web site <http://linux.rz.fh-
  746.   hannover.de/~raupach/> for more information on this driver.
  747.  
  748.   4.3.6.  Mcd Driver
  749.  
  750.          Principal author: Martin  (martin@bdsi.com)
  751.       Multi-session support: no
  752.    Multiple drive support: no
  753.   Loadable module support: yes
  754.      Reading audio frames: no
  755.              Auto-probing: no
  756.               Device file: /dev/mcd, major 23
  757.        Configuration file: mcd.h
  758.      Kernel config option: Standard Mitsumi CDROM support?
  759.               README file: mcd
  760.  
  761.   This is the older driver for Mitsumi drivers that has been available
  762.   for some time. You might want to try the newer mcdx driver, which has
  763.   some new features but is possibly less stable.
  764.  
  765.   This driver accepts a kernel command line of the form:
  766.  
  767.        mcd=<io-address>,<irq>
  768.  
  769.   specifying the I/O base address of the card (e.g. 0x340) and the IRQ
  770.   request number used.
  771.  
  772.   The device file can be created using:
  773.  
  774.        # mknod /dev/mcd b 23 0
  775.  
  776.   See the file mcd for more information on this driver.
  777.  
  778.   4.3.7.  Mcdx Driver
  779.  
  780.          Principal author: Heiko Schlittermann
  781.     Multi-session support: yes
  782.    Multiple drive support: yes
  783.   Loadable module support: yes
  784.      Reading audio frames: no (not supported by hardware)
  785.              Auto-probing: no
  786.               Device file: /dev/mcdx0, major 20
  787.        Configuration file: mcdx.h
  788.      Kernel config option: Experimental Mitsumi support?
  789.               README file: mcdx
  790.  
  791.   This is a newer driver for Mitsumi drivers. The older and possibly
  792.   more stable mcd driver is still available.
  793.  
  794.   This driver accepts a kernel command line of the form:
  795.  
  796.        mcdx=<io-address>,<irq>
  797.  
  798.   specifying the I/O base address of the card (e.g. 0x340) and the IRQ
  799.   request number used.
  800.  
  801.   The device file can be created using:
  802.  
  803.        # mknod /dev/mcdx0 b 20 0
  804.  
  805.   If you recently bought a Mitsumi CD-ROM drive, don't assume that it
  806.   should use this kernel driver. Some Mitsumi models are now EIDE/ATAPI
  807.   drives and should use the idecd kernel driver.
  808.  
  809.   See the file mcdx for more information on this driver.
  810.  
  811.   4.3.8.  Cm206 Driver
  812.  
  813.          Principal author: David A. van Leeuwen (david@tm.tno.)
  814.     Multi-session support: yes
  815.    Multiple drive support: no
  816.   Loadable module support: yes
  817.      Reading audio frames: no
  818.              Auto-probing: yes
  819.               Device file: /dev/cm206cd, major 32
  820.        Configuration file: cm206.h
  821.      Kernel config option: Philips/LMS CM206 CDROM support?
  822.               README file: cm206
  823.  
  824.   The driver accepts a kernel command line of the form:
  825.  
  826.   cm206=<io-address>,<interrupt>
  827.  
  828.   where the first number is the I/O base address of the card (e.g.
  829.   0x340). The second is the interrupt channel.
  830.  
  831.   The device file can be created using:
  832.  
  833.        # mknod /dev/cm206cd b 32 0
  834.  
  835.   See the file cm206 for more information on this driver.
  836.  
  837.   4.3.9.  Optcd Driver
  838.  
  839.          Principal author: Leo Spiekman (spiekman@dutette.et.tudelft.nl)
  840.     Multi-session support: yes
  841.    Multiple drive support: no
  842.   Loadable module support: yes
  843.      Reading audio frames: no
  844.              Auto-probing: no
  845.               Device file: /dev/optcd0, major 17
  846.        Configuration file: optcd.h
  847.      Kernel config option: Experimental Optics Storage ... CDROM support?
  848.               README file: optcd
  849.  
  850.   The driver accepts a kernel command line of the form
  851.  
  852.        optcd=<io-address>
  853.  
  854.   to specify the I/O base address of the card (e.g. 0x340).
  855.  
  856.   The device file can be created using:
  857.  
  858.        # mknod /dev/optcd0 b 17 0
  859.  
  860.   See the file optcd for more information on this driver.
  861.  
  862.   4.3.10.  Sjcd Driver
  863.  
  864.          Principal author: Vadim V. Model (vadim@rbrf.msk.su)
  865.     Multi-session support: no
  866.    Multiple drive support: no
  867.   Loadable module support: yes
  868.      Reading audio frames: no
  869.              Auto-probing: no
  870.               Device file: /dev/sjcd, major 18
  871.        Configuration file: sjcd.h
  872.      Kernel config option: Experimental Sanyo H94A CDROM support?
  873.               README file: sjcd
  874.  
  875.   The driver accepts a kernel command line of the form:
  876.  
  877.        sjcd=<io-address>,<interrupt>,<dma>
  878.  
  879.   indicating the base address, interrupt, and DMA channel to be used
  880.   (e.g. sjcd=0x340,10,5).
  881.  
  882.   The device file can be created using:
  883.  
  884.        # mknod /dev/sjcd b 18 0
  885.  
  886.   See the file sjcd for more information on this driver.
  887.  
  888.   4.3.11.  Bpcd Driver
  889.  
  890.          Principal author: Grant R. Guenther (grant@torque.net)
  891.     Multi-session support: unknown
  892.    Multiple drive support: no
  893.   Loadable module support: yes
  894.      Reading audio frames: no
  895.              Auto-probing: yes
  896.               Device file: /dev/bpcd, major 41
  897.        Configuration file: bpcd.h
  898.      Kernel config option: MicroSolutions backpack CDROM support?
  899.               README file: bpcd
  900.  
  901.   The driver accepts a kernel command line of the form:
  902.  
  903.        bpcd=<io-address>
  904.  
  905.   indicating the base address to be used (e.g. bpcd=0x3bc).
  906.  
  907.   The device file can be created using:
  908.  
  909.        # mknod /dev/bpcd b 41 0
  910.  
  911.   This driver is included with the 2.1 kernel source distribution.  See
  912.   the file bpcd for more information on this driver.
  913.  
  914.   4.3.12.  SCSI Driver
  915.  
  916.          Principal author: David Giller
  917.     Multi-session support: yes (depending on drive)
  918.    Multiple drive support: yes
  919.   Loadable module support: yes
  920.      Reading audio frames: no
  921.              Auto-probing: yes
  922.               Device file: /dev/scd0, major 11
  923.        Configuration file: cdrom.h
  924.      Kernel config option: SCSI CDROM support?
  925.               README file: none
  926.  
  927.   There are kernel command line option specific to each type of SCSI
  928.   controller. See the SCSI HOWTO for more information.
  929.  
  930.   Multiple drives are supported (up to the limit of the maximum number
  931.   of devices on the SCSI bus). Create device files with major number 11
  932.   and minor numbers starting at zero:
  933.  
  934.        # mknod /dev/scd0 b 11 0
  935.        # mknod /dev/scd1 b 11 1
  936.  
  937.   While the kernel driver itself does not support reading digital audio
  938.   frames, some SCSI drives have the capability and will work with the
  939.   cdda2wav program (which uses the generic SCSI kernel interface).
  940.  
  941.   4.3.13.  IDECD Driver
  942.  
  943.          Principal author: Scott Snyder (snyder@fnald0.fnal.gov)
  944.     Multi-session support: yes
  945.    Multiple drive support: yes
  946.   Loadable module support: no
  947.      Reading audio frames: yes (on supported drives)
  948.              Auto-probing: yes
  949.               Device file: /dev/hd{a,b,c,d},  major 22
  950.        Configuration file: cdrom.h
  951.      Kernel config option: Include support for IDE/ATAPI CDROMs?
  952.               README file: ide-cd
  953.  
  954.   This is the driver for ATAPI CD-ROMS. The driver accepts a kernel
  955.   command line of the form
  956.  
  957.        hdx=cyls,heads,sects,wpcom,irq
  958.          or
  959.        hdx=cdrom
  960.  
  961.   where hdx can be any of {hda,hdb,hdc,hdd}, or simply hd, for the
  962.   "next" drive in sequence. Only the first three parameters are required
  963.   (cyls,heads,sects). For example hdc=1050,32,64 hdd=cdrom.
  964.  
  965.   Getting the IDE driver to recognize your CD-ROM drive can be tricky,
  966.   especially if you have more than 2 devices or more than one IDE
  967.   controller. Usually all that is required is to pass the right command
  968.   line options from LILO. The file /usr/src/linux/Documentation/ide-cd
  969.   explains how to do this. Read it carefully.
  970.  
  971.   Recent Linux kernels have better support for multiple IDE devices. If
  972.   you have problems with an older kernel, upgrading may help.
  973.  
  974.   Some IDE controllers have hardware problems which the kernel driver
  975.   can work around. You may need to pass additional parameters to the
  976.   driver to enable this. See the documentation for details.
  977.  
  978.   4.4.  Booting the Linux Kernel
  979.  
  980.   You can now reboot with the new kernel. Watch for a message such as
  981.   the following indicating that the CD-ROM has been found by the device
  982.   driver (the message will vary depending on the drive type):
  983.  
  984.        hdd: NEC CD-ROM DRIVE:282, ATAPI CDROM drive
  985.  
  986.   If the bootup messages scroll by too quickly to read, you should be
  987.   able to retrieve them using dmesg or tail /var/adm/messages.
  988.  
  989.   If the drive is not found, then a problem has occurred, See the
  990.   section on troubleshooting.
  991.  
  992.   4.5.  Mounting, Unmounting, and Ejecting Devices
  993.  
  994.   To mount a CD-ROM, insert a disc in the drive, and run the mount
  995.   command as root (this assumes you created a symbolic link to your
  996.   device file as recommended above and that an empty directory
  997.   /mnt/cdrom exists):
  998.  
  999.        # mount -t iso9660 -r /dev/cdrom /mnt/cdrom
  1000.  
  1001.   The CD can now be accessed under the directory /mnt/cdrom.
  1002.  
  1003.   There are other options to the mount command that you may wish to use;
  1004.   see the mount(8) man page for details.
  1005.  
  1006.   You can add an entry to /etc/fstab to automatically mount a CD-ROM
  1007.   when Linux boots or to specify parameters to use when it is mounted;
  1008.   see the fstab(5) man page.
  1009.  
  1010.   Note that to play audio CDs you should not try to mount them.
  1011.  
  1012.   To unmount a CD-ROM, use the umount command as root:
  1013.  
  1014.        # umount /mnt/cdrom
  1015.  
  1016.   The disc can only be unmounted if no processes are currently accessing
  1017.   the drive (including having their default directory set to the mounted
  1018.   drive). You can then eject the disc. Most drives have an eject button;
  1019.   there is also a standalone eject program that allows ejecting CD-ROMs
  1020.   under software control.
  1021.  
  1022.   Note that you should not eject a disc while it is mounted (this may or
  1023.   may not be possible depending on the type of drive). Some CD-ROM
  1024.   drivers can automatically eject a CD-ROM when it is unmounted and
  1025.   insert the CD tray when a disc is mounted (you can turn this feature
  1026.   off when compiling the kernel or by using a software command).
  1027.  
  1028.   Its possible that after playing an audio CD you may not be able to
  1029.   mount a CD-ROM. You need to send a CD audio "stop" command (using a CD
  1030.   player program) before trying the mount. This problem only appears to
  1031.   occur with the SBPCD driver.
  1032.  
  1033.   Stephen Tweedie (sct@dcs.ed.ac.uk) has written the Supermount package
  1034.   which provides transparent mounting of removable media including CD-
  1035.   ROM. You can find it at
  1036.   <ftp://sunsite.unc.edu/pub/Linux/patches/diskdrives/>.
  1037.  
  1038.   4.6.  Troubleshooting
  1039.  
  1040.   If you still encounter problems after following the instructions in
  1041.   the HOWTO, here are some things to check. The checks are listed in
  1042.   increasing order of complexity. If a check fails, solve the problem
  1043.   before moving to the next stage.
  1044.  
  1045.   4.6.1.  Step 1: Make sure you are really running the kernel you com¡
  1046.   piled
  1047.  
  1048.   You can check the date stamp on the kernel to see if you are running
  1049.   the one that you compiled with CD-ROM support. You can do this with
  1050.   the uname command:
  1051.  
  1052.        % uname -a
  1053.        Linux fizzbin 2.0.18 #1 Fri Sep 6 10:10:54 EDT 1996 i586
  1054.  
  1055.   or by displaying the file /proc/version:
  1056.  
  1057.        % cat /proc/version
  1058.        Linux version 2.0.18 (root@fizzbin) (gcc version 2.7.2) #1 Fri Sep 6 10:10:54 EDT 1996
  1059.  
  1060.   If the date stamp doesn't seem to match when you compiled the kernel,
  1061.   then you are running an old kernel. Did you really reboot? If you use
  1062.   LILO, did you re-install it (typically by running /sbin/lilo)? If
  1063.   booting from floppy, did you create a new boot floppy and use it when
  1064.   booting?
  1065.  
  1066.   4.6.2.  Step 2: Make sure the proper kernel drivers are compiled in
  1067.  
  1068.   You can see what drivers are compiled in by looking at /proc/devices:
  1069.  
  1070.        % cat /proc/devices
  1071.        Character devices:
  1072.         1 mem
  1073.         2 pty
  1074.         3 ttyp
  1075.         4 ttyS
  1076.         5 cua
  1077.         7 vcs
  1078.  
  1079.        Block devices:
  1080.         3 ide0
  1081.        22 ide1
  1082.  
  1083.   First look for your CD-ROM device driver. These are all block devices,
  1084.   in this case we can see that the idecd driver with major number 22 was
  1085.   present.
  1086.  
  1087.   Also make sure that ISO-9660 filesystem support was compiled in, by
  1088.   looking at /proc/filesystems:
  1089.  
  1090.        % cat /proc/filesystems
  1091.                ext2
  1092.                msdos
  1093.        nodev   proc
  1094.                iso9660
  1095.  
  1096.   You can also see what i/o port addresses are being used by a driver
  1097.   with the file /proc/ioports:
  1098.  
  1099.   howto % cat /proc/ioports
  1100.    ...
  1101.   0230-0233 : sbpcd
  1102.    ...
  1103.  
  1104.   If any of the drivers you thought you compiled in are not displayed,
  1105.   then something went wrong with the kernel configuration or build.
  1106.   Start the installation process again, beginning with configuration and
  1107.   building of the kernel.
  1108.  
  1109.   4.6.3.  Step 3: Did the kernel detect your drive during booting?
  1110.  
  1111.   Make sure that the CD-ROM device was detected when the kernel booted.
  1112.   You should have seen a message on bootup. If the messages scrolled off
  1113.   the screen, you can usually recall them using the dmesg command:
  1114.  
  1115.        % dmesg
  1116.  
  1117.   or
  1118.  
  1119.        % tail /var/adm/messages
  1120.  
  1121.   If your drive was not found then something is wrong. Make sure it is
  1122.   powered on and all cables are connected. If your drive has hardware
  1123.   jumpers for addressing, check that they are set correctly (e.g. drive
  1124.   0 if you have only one drive). ATAPI CD-ROMS must be jumpered as
  1125.   "single" or "master", and not "slave" when only one IDE device is
  1126.   attached to an interface. If the drive works under DOS then you can be
  1127.   reasonably confident that the hardware is working.
  1128.  
  1129.   Many kernel drivers using auto-probing, but some do not, and in any
  1130.   case the probing is not always reliable. Use the kernel command line
  1131.   option listed for your kernel driver type. You may want to try several
  1132.   different values if you are not sure of the i/o address or other
  1133.   parameters. LILO can be (and usually is) configured to allow you to
  1134.   enter the parameters manually when booting.
  1135.  
  1136.   Another possibility is that you used the wrong kernel driver for your
  1137.   CD-ROM driver. Some documentation may refer to proprietary interfaces
  1138.   as IDE, leading some to mistakenly believe they are ATAPI drives.
  1139.  
  1140.   Another possibility is that your drive (or interface card) is one of
  1141.   the "compatible" type that requires initialization by the DOS driver.
  1142.   Try booting DOS and loading the vendor supplied DOS device driver.
  1143.   Then soft boot Linux using Control-Alt-Delete.
  1144.  
  1145.   If your drive is not listed in this document, it is possible that
  1146.   there are no drivers for it available under Linux. You can check with
  1147.   some of the references listed at the end of this document for
  1148.   assistance.
  1149.  
  1150.   4.6.4.  Step 4: Can you read data from the drive?
  1151.  
  1152.   Try reading from the CD-ROM drive. Typing the following command should
  1153.   cause the drive activity light (if present) to come on and no errors
  1154.   should be reported. Use whatever device file is appropriate for your
  1155.   drive and make sure a CD-ROM is inserted; use Control-C to exit.
  1156.  
  1157.        # dd if=/dev/cdrom of=/dev/null bs=2048
  1158.        ^C
  1159.        124+0 records in
  1160.        124+0 records out
  1161.  
  1162.   If this works, then the kernel is communicating with the drive and you
  1163.   can move on to step 5.
  1164.  
  1165.   If not, then a possible cause is the device file. Make sure than the
  1166.   device file in the /dev directory has the correct major and minor
  1167.   numbers as listed previously for your drive type. Check that the
  1168.   permissions on the device file allow reading and writing.
  1169.  
  1170.   A remote possibility is a hardware problem. Try testing the drive
  1171.   under DOS, if possible, to determine if this could be the case.
  1172.  
  1173.   4.6.5.  Step 5: Can you mount the drive?
  1174.  
  1175.   If you can read from the drive but cannot mount it, first verify that
  1176.   you compiled in ISO-9660 file system support by reading
  1177.   /proc/filesystems, as described previously.
  1178.  
  1179.   Make sure you are mounting the drive with the "-t iso9660" and "-r"
  1180.   options and that a known good ISO-9660 CD-ROM (not Audio CD) is
  1181.   inserted in the drive. You normally must mount drives as user root.
  1182.  
  1183.   Make sure that the mount point exists and is an empty directory.
  1184.  
  1185.   If you are automatically mounting the CD-ROM on bootup, make sure that
  1186.   you have correct entries in the /etc/fstab file.
  1187.  
  1188.   If you are running the syslog daemon, there may be error messages from
  1189.   the kernel that you are not seeing. Try using the "dmesg" command:
  1190.  
  1191.        % dmesg
  1192.        SBPCD: sbpcd_open: no disk in drive
  1193.  
  1194.   There may also be errors logged to files in /var/adm, depending on how
  1195.   your system is configured.
  1196.  
  1197.   4.6.6.  Debugging Audio Problems
  1198.  
  1199.   If the drive works with CD-ROMs, but not for playing audio CDs, here
  1200.   are some possible solutions.
  1201.   You need an application program to play audio CDs. Some applications
  1202.   may be broken or may not be compatible with your drive. Try other
  1203.   applications and/or try recompiling them yourself. A good place to
  1204.   look for software is
  1205.   <ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/>.
  1206.  
  1207.   A few of the CD-ROM drivers do not support playing Audio CDs. Check
  1208.   the README file or source code to see if that is the case.
  1209.  
  1210.   Check if the audio can be played through the headphone jack. If so,
  1211.   then the problem is likely related to your sound card. Use a mixer
  1212.   program to set the input device and volume levels. Make sure you have
  1213.   installed an audio cable from the CD-ROM drive to the sound card. Make
  1214.   sure that the kernel sound card driver is installed and working (see
  1215.   the Sound HOWTO).
  1216.  
  1217.   4.6.7.  When All Else Fails
  1218.  
  1219.   If you still have problems, here are some final suggestions for things
  1220.   to try:
  1221.  
  1222.   ╖  carefully re-read this HOWTO document
  1223.  
  1224.   ╖  read the references listed at the end of this document, especially
  1225.      the relevant kernel source README files
  1226.  
  1227.   ╖  post a question to one of the comp.os.linux or other usenet
  1228.      newsgroups
  1229.  
  1230.   ╖  send a question to the Linux mailing list
  1231.  
  1232.   ╖  try using the latest Linux kernel
  1233.  
  1234.   ╖  contact your computer dealer
  1235.  
  1236.   ╖  contact the CD-ROM manufacturer
  1237.  
  1238.   ╖  send mail to the maintainer of the relevant kernel driver (look in
  1239.      the file /usr/src/linux/MAINTAINERS)
  1240.  
  1241.   ╖  send mail to me
  1242.  
  1243.   ╖  fire up emacs and type Esc-x doctor :-)
  1244.  
  1245.   5.  Applications
  1246.  
  1247.   This section briefly lists some of the key applications related to CD-
  1248.   ROM that are available under Linux. Check the Linux Software Map for
  1249.   the latest versions and archive sites.
  1250.  
  1251.   5.1.  Audio CD Players
  1252.  
  1253.   Several programs are available for playing audio CDs, either through a
  1254.   headphone jack or an attached sound card.
  1255.  
  1256.      Workman
  1257.         a graphical player running under X11 and supporting a CD
  1258.         database and many other features
  1259.      WorkBone
  1260.         an interactive text-mode player
  1261.  
  1262.      xcdplayer
  1263.         a simple X11 based player
  1264.  
  1265.      cdplayer
  1266.         a very simple command line based player
  1267.  
  1268.      Xmcd
  1269.         an X11/Motif based player
  1270.  
  1271.      xmitsumi
  1272.         another X11 based player for Mitsumi drives
  1273.  
  1274.      xplaycd
  1275.         another X11 based player, bundled with sound mixer and VU meter
  1276.         programs
  1277.  
  1278.      cdtool
  1279.         command line tools for playing audio CDs
  1280.  
  1281.   Some of these programs are coded to use a specific device file for the
  1282.   CD-ROM (e.g. /dev/cdrom). You may be able to pass the correct device
  1283.   name as a parameter, or you can create a symbolic link in the /dev
  1284.   directory. If sending the CD output to a sound card, you may wish to
  1285.   use a mixer program to set volume settings or select the CD-ROM input
  1286.   for recording.
  1287.  
  1288.   5.2.  PhotoCD
  1289.  
  1290.   PhotoCDs use an ISO-9660 file system containing image files in a
  1291.   proprietary format. Not all CD-ROM drives support reading PhotoCDs.
  1292.  
  1293.   The hpcdtoppm program by Hadmut Danisch converts PhotoCD files to the
  1294.   portable pixmap format. It can be obtained from
  1295.   <ftp://ftp.gwdg.de/pub/linux/hpcdtoppm> or as part of the PBM
  1296.   (portable bit map) utilities, available on many archive sites (look
  1297.   for "pbm" or "netpbm").
  1298.  
  1299.   The photocd program by Gerd Knorr kraxel@cs.tu-berlin.de can convert
  1300.   PhotoCD images into Targa or Windows and OS/2 bitmap files.
  1301.  
  1302.   The same author has written the program xpcd, an X11-based program for
  1303.   handling PhotoCD images. You can select the images with a mouse,
  1304.   preview the image in a small window, and load the image with any of
  1305.   the five possible resolutions. You can also mark a part of the Image
  1306.   and load only the selected part. Look for these packages at
  1307.   <ftp://ftp.cs.tu-berlin.de/pub/linux/Local/misc/>.
  1308.  
  1309.   The ImageMagick image file manipulation program also supports PhotoCD
  1310.   files. It is available from
  1311.   <ftp://ftp.x.org/contrib/applications/ImageMagick/>.
  1312.  
  1313.   5.3.  Mkisofs
  1314.  
  1315.   Eric Youngdale's mkisofs package allows creating an ISO-9660 file
  1316.   system on a hard disk partition. This can then be used to assist in
  1317.   creating and testing CD-ROM file systems before mastering discs.
  1318.  
  1319.   The tools for actually writing data to writable CD-ROM drives tend to
  1320.   be vendor specific. They also require writing the data with no
  1321.   interruptions, so a multitasking operating system like Linux is not
  1322.   particularly well suited.
  1323.  
  1324.   5.4.  ISO-9660 Utilities
  1325.  
  1326.   These are some utilities for verifying the format of ISO-9660
  1327.   formatted discs; you may find them useful for testing suspect CDs. The
  1328.   package can be found at  <ftp://ftp.cdrom.com/pub/cdrom/ptf/>.  They
  1329.   were written by Bill Siegmund and Rich Morin.
  1330.  
  1331.   6.  Answers to Frequently Asked Questions
  1332.  
  1333.   6.1.  How can a non-root user mount and unmount discs?
  1334.  
  1335.   Most mount commands support the user option. If you make an entry such
  1336.   as the following in /etc/fstab:
  1337.  
  1338.        /dev/sbpcd  /mnt/cdrom   iso9660     user,noauto,ro
  1339.  
  1340.   then an ordinary user will be allowed to mount and unmount the drive
  1341.   using these commands:
  1342.  
  1343.        % mount /mnt/cdrom
  1344.        % umount /mnt/cdrom
  1345.  
  1346.   The disc will be mounted with some options that help enforce security
  1347.   (e.g. programs cannot executed, device files are ignored); in some
  1348.   cases this may be too restrictive.
  1349.  
  1350.   Another method is to get the usermount package which allows non-root
  1351.   users to mount and unmount removable devices such as floppies and CD-
  1352.   ROMs, but restricts access to other devices (such as hard disk
  1353.   partitions). It is available on major archive sites.
  1354.  
  1355.   The archive site ftp.cdrom.com has the source file mount.c which
  1356.   allows mounting an unmounting of CD-ROMs (only) by normal users. It
  1357.   runs as a setuid executable.
  1358.  
  1359.   6.2.  Why do I get device is busy when unmounting a CD-ROM?
  1360.  
  1361.   The disc cannot be unmounted if any processes are accessing the drive,
  1362.   including having their default directory set to the mounted
  1363.   filesystem. If you cannot identify the processes using the disc, you
  1364.   can use the fuser command, as shown in the following example.
  1365.  
  1366.   % umount /cdrom
  1367.   umount: /dev/hdd: device is busy
  1368.   % fuser -v /cdrom
  1369.                        USER       PID ACCESS COMMAND
  1370.   /mnt/cdrom           tranter    133 ..c..  bash
  1371.  
  1372.   6.3.  How do I export a CD-ROM to other hosts over NFS?
  1373.  
  1374.   You need to add an entry to the /etc/exports file. Users on other
  1375.   machines will then be able to mount the device. See the exports(5) man
  1376.   page for details.
  1377.  
  1378.   6.4.  Can I boot Linux from a CD-ROM?
  1379.  
  1380.   When initially installing Linux the most common method is to use a
  1381.   boot floppy. Some distributions allow booting a Linux kernel on CD
  1382.   directly from DOS.
  1383.  
  1384.   Michael Fulbright (msf@redhat.com) reports that with the right CD-ROM,
  1385.   ROM BIOS, and ATAPI CD-ROM drive it is possible to boot directly from
  1386.   CD. The latest version of mkisofs also supports creating such disks.
  1387.   He has added some patches to support the El Torito standard for
  1388.   bootable CDs.
  1389.  
  1390.   6.5.  How can I read digital data from audio CDs?
  1391.  
  1392.   Heiko Eissfeldt (heiko@colossus.escape.de) and Olaf Kindel have
  1393.   written a utility that reads audio data and saves it as .wav format
  1394.   sound files. The package is called cdda2wav.tar.gz and can be found on
  1395.   sunsite.unc.edu.
  1396.  
  1397.   Because CD-ROM drives are changing very quickly, it is difficult to
  1398.   list which models support reading digital data. You best bet is to get
  1399.   the latest cdda2wav package and read the documentation.
  1400.  
  1401.   For more information on this subject, see the web site
  1402.   http://www.tardis.ed.ac.uk/~psyche/cdda/ and the alt.cd-rom FAQ listed
  1403.   in the references section.
  1404.  
  1405.   6.6.  Why doesn't the find command work properly?
  1406.  
  1407.   On ISO-9660 formatted discs without the Rock Ridge Extensions, you
  1408.   need to add the -noleaf option to the find command.  See the find(1)
  1409.   man page for details.
  1410.  
  1411.   (In my experience virtually all recent Linux CDs use the Rock Ridge
  1412.   extensions, so this problem should occur very rarely.)
  1413.  
  1414.   6.7.  Does Linux support any recordable CD-ROM drives?
  1415.  
  1416.   The X-CD-Roast package for Linux is a graphical front-end for using CD
  1417.   writers. The package can be found at sunsite.unc.edu in
  1418.   /pub/Linux/utils/disk-management/xcdroast-0.95.tar.gz
  1419.   Also see the Linux CD-Writing HOWTO document, found at
  1420.   <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/CD-Writing.html> or
  1421.   <http://sunsite.unc.edu/LDP/HOWTO/CD-Writing.html>.
  1422.  
  1423.   6.8.  Why do I get mount: Read-only file system when mounting a CD-
  1424.   ROM?
  1425.  
  1426.   CD-ROM is a read-only media. With some early kernels you could mount a
  1427.   CD-ROM for read/write; attempts to write data to the CD would simple
  1428.   be ignored. As of kernel version 1.1.33 this was corrected so that CD-
  1429.   ROMs must be mounted read only (e.g. using the -r option to mount).
  1430.  
  1431.   6.9.  Why does the disc tray open when I shut down the system?
  1432.  
  1433.   As of the 1.1.38 kernel, the sbpcd driver ejects the CD when it is
  1434.   unmounted. If you shut down the system, a mounted CD will be
  1435.   unmounted, causing it to eject.
  1436.  
  1437.   This feature is for convenience when changing discs. If the tray is
  1438.   open when you mount or read a CD, it will also automatically be
  1439.   closed.
  1440.  
  1441.   I found that this caused problems with a few programs (e.g. cdplay and
  1442.   workbone). As of the 1.1.60 kernel you can control this feature under
  1443.   software control. A sample program is included in the sbpcd
  1444.   documentation file (or use the eject program).
  1445.  
  1446.   6.10.  I have a "special" CD that can't be mounted
  1447.  
  1448.   The "special" CD is likely an XA disc (like all Photo CDs or "one-
  1449.   offs" created using CD-R drives). Most of the Linux kernel CD-ROM
  1450.   drivers do not support XA discs, although you may be able to find a
  1451.   patch to add support on one of the archive sites.
  1452.  
  1453.   The sbpcd driver does support XA. If you are using this driver you can
  1454.   determine if the disc is XA using the following procedure: go into the
  1455.   file sbpcd.c and enable the display of the "Table of Contents"
  1456.   (DBG_TOC). Build and install the new kernel and boot from it. During
  1457.   each mount the TOC info will be written (either to the console or to a
  1458.   log file). If the first displayed value in the TOC header line is
  1459.   "20", then it is an XA disc. That byte is "00" with normal disks. If
  1460.   the TOC display shows different tracks, that is also a sign that it is
  1461.   an XA disc.
  1462.  
  1463.   (thanks to Eberhard Moenkeberg for the above information)
  1464.  
  1465.   Other possibilities for unreadable CDs are:
  1466.  
  1467.   1. The disc doesn't use an ISO-9660 file system (e.g. some use SunOS
  1468.      or HFS)
  1469.  
  1470.   2. It is an audio CD
  1471.  
  1472.   3. The CD is damaged or defective
  1473.  
  1474.   4. You put it in the drive upside down :-)
  1475.  
  1476.   6.11.  Do multi-platter CD-ROM drives work with Linux?
  1477.  
  1478.   Several users have reported success with SCSI multi-disc CD-ROM
  1479.   changers.  You probably need to enable the "Probe all LUNs on each
  1480.   SCSI device" kernel configuration option. At least one user also had
  1481.   to increase a SCSI timeout value in the kernel driver. The Nakamichi
  1482.   MBR-7 7 disc changer and Pioneer 12 disc changer have been reported to
  1483.   work.
  1484.  
  1485.   EIDE/ATAPI multi-disc changers are also available. The 2.0 kernel has
  1486.   rudimentary support for some drives using the CDROM_SELECT_DISC ioctl
  1487.   function. The IDE-CD kernel driver documentation file includes source
  1488.   code for a program to select changer slots, or you can use a recent
  1489.   version of the eject program described earlier.
  1490.  
  1491.   6.12.  I get "/cdrom: Permission denied" errors
  1492.  
  1493.   Some CDs have root directory file permissions that only allow user
  1494.   root to read them. The March 1995 InfoMagic CD set is one example.
  1495.   This is a real inconvenience.
  1496.  
  1497.   The following patch, courtesy of Christoph Lameter
  1498.   (clameter@waterf.org) patches the kernel to get around this problem.
  1499.  
  1500.   From: clameter@waterf.org (Christoph Lameter)
  1501.   Newsgroups: comp.os.linux.setup
  1502.   Subject: InfoMagic Developers Set: Fix for CD-ROM permissions
  1503.   Date: 12 Apr 1995 20:32:03 -0700
  1504.   Organization: The Water Fountain - Mining for streams of Living Water
  1505.   NNTP-Posting-Host: waterf.org
  1506.   X-Newsreader: TIN [version 1.2 PL2]
  1507.  
  1508.   The March 1995 Edition of the InfoMagic Developers CD-ROM Set has
  1509.   problems because the information stored in the root directory
  1510.   permissions is causing the following problems with using the CDs
  1511.  
  1512.   1. Disc1 will always have the owner/group of 5101/51 and has write
  1513.   access allowed (?)
  1514.  
  1515.   2. Disc2 and 3 have rwx set for root and no rights at all for any
  1516.   other group/user. These discs cannot be accessed from any user other
  1517.   than root! I run a BBS and I need to make them accessible for download
  1518.   by others.
  1519.  
  1520.   I have seen several fixes to this problem already floating
  1521.   around. Trouble is that these fixes usually change the rights for ALL
  1522.   directories on the CD. This fix here changes ONLY the rights for the
  1523.   root directory of the CD-ROM. If you want to run parts of Linux
  1524.   directly off the CD you might run into trouble if all directories are
  1525.   readable for everyone and if they are all owned by root.
  1526.  
  1527.   This fix will set the rights for the root directory to r-xr-xr-x and
  1528.   the owner/group to the values indicated in the uid and gid options to
  1529.   the mount command.
  1530.  
  1531.   To apply:
  1532.    cd /usr/src/linux/fs/isofs
  1533.    patch <**THIS MESSAGE**
  1534.  
  1535.   and recompile kernel (you may have to fix up the patch by hand
  1536.   depending on your kernel version).
  1537.  
  1538.   This fix should probably be incorporated into the kernel. What business
  1539.   does data on a CD have to mess around with the permissions/owners of the
  1540.   mount-point anyways?
  1541.  
  1542.   --- inode.c.ORIG        Wed Apr 12 17:24:36 1995
  1543.   +++ inode.c     Wed Apr 12 17:59:12 1995
  1544.   @@ -552,7 +552,15 @@
  1545.       these numbers in the inode structure. */
  1546.  
  1547.           if (!high_sierra)
  1548.   -         parse_rock_ridge_inode(raw_inode, inode);
  1549.   +       {  parse_rock_ridge_inode(raw_inode, inode);
  1550.   +           /* check for access to the root directory rights/owner CL */
  1551.   +          if((inode->i_sb->u.isofs_sb.s_firstdatazone) == inode->i_ino)
  1552.   +           { /* Change owner/rights to the ones demanded by the mount command */
  1553.   +             inode->i_uid = inode->i_sb->u.isofs_sb.s_uid;
  1554.   +             inode->i_gid = inode->i_sb->u.isofs_sb.s_gid;
  1555.   +            inode->i_mode = S_IRUGO | S_IXUGO | S_IFDIR;
  1556.   +           }
  1557.   +        }
  1558.  
  1559.    #ifdef DEBUG
  1560.           printk("Inode: %x extent: %x\n",inode->i_ino, inode->u.isofs_i.i_first_extent);
  1561.   @@ -805,4 +813,3 @@
  1562.    }
  1563.  
  1564.    #endif
  1565.   -
  1566.   Note that the above patch is somewhat old and probably won't apply
  1567.   cleanly against recent 2.0 kernels. Also see the related question on
  1568.   hidden files later in this document.
  1569.  
  1570.   6.13.  How do I interpret IDE CD kernel error messages?
  1571.  
  1572.   What does it mean when I get a kernel message from the IDE CD-ROM
  1573.   driver like "hdxx: code: xx key: x asc: xx ascq: x"?
  1574.  
  1575.   This is an status/error message from the IDE CD-ROM drive. By default
  1576.   the IDECD driver prints out the raw information instead of wasting
  1577.   kernel space with error messages.  You can change the default to
  1578.   display the actual error messages by going into
  1579.   /usr/src/linux/drivers/block/ide-cd.c, changing the value of
  1580.   VERBOSE_IDE_CD_ERRORS to 1, and recompiling the kernel.
  1581.  
  1582.   6.14.  How can I tell what speed CD-ROM I have?
  1583.  
  1584.   Here's one way. This command measures how long is takes to read 1500K
  1585.   of data from CD:
  1586.  
  1587.        % time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500
  1588.        1500+0 records in
  1589.        1500+0 records out
  1590.        real 5.24
  1591.        user 0.03
  1592.        sys 5.07
  1593.  
  1594.   The transfer rate of single speed drives is 150 kilobytes per second,
  1595.   which should take about 10 seconds. At double speed it would take five
  1596.   seconds, quad speed would take 2.5, etc...
  1597.  
  1598.   The "real" time above is probably the best number to look at -- in
  1599.   this case it indicates a double speed drive. You can increase the
  1600.   amount of data transferred to get a more accurate value (in case you
  1601.   were wondering, the data does not get cached). You should probably run
  1602.   the command a few times and take the average.
  1603.  
  1604.   6.15.  My CD-ROM stopped working after Linux was installed
  1605.  
  1606.   The usual symptom is that the boot disk used to initially install
  1607.   Linux recognized your CD-ROM drive, but after Linux was installed on
  1608.   the hard drive or floppy and rebooted it no longer recognizes the CD-
  1609.   ROM.
  1610.  
  1611.   The most common reason for this problem is that with some Linux
  1612.   distributions the kernel that is installed on your hard drive (or
  1613.   floppy) is not necessarily the same one that was on your boot disk.
  1614.   You selected a boot disk that matched your CD-ROM hardware, while the
  1615.   kernel you installed is a "generic" kernel that is lacking CD-ROM
  1616.   support. You can verify this by following the troubleshooting
  1617.   guidelines discussed previously in this document (e.g. start by
  1618.   checking /proc/devices).
  1619.  
  1620.   The solution is to recompile the kernel, ensuring that the drivers for
  1621.   your CD-ROM drive and any others that are needed (e.g. SCSI
  1622.   controller, ISO-9660 file system) are included. See the Kernel HOWTO
  1623.   <http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html> if you don't know
  1624.   how to do this.
  1625.  
  1626.   If you passed any command line options to the boot disk (e.g.
  1627.   "hdc=cdrom") you need to add these to your boot program configuration
  1628.   file (typically /etc/lilo.conf).
  1629.  
  1630.   6.16.  There are "hidden" files on a CD which I can't read
  1631.  
  1632.   Some CDs have files with the "hidden" bit set on them. Normally these
  1633.   files are not visible. If you mount the CD with the "unhide" option
  1634.   then the files should be accessible (this doesn't seem to be
  1635.   documented anywhere).
  1636.  
  1637.   6.17.  Where is the CD-ROM API documented?
  1638.  
  1639.   If you want to write your own application, such as an audio CD player
  1640.   program, you will need to understand the application programming
  1641.   interface (API) provided by Linux.
  1642.  
  1643.   Originally the CD-ROM kernel drivers used their own ioctl() functions
  1644.   to support features specific to each drive. Header files such as
  1645.   /usr/include/linux/sbpcd.h describe these. Because many of the drivers
  1646.   were based on other drivers, the interfaces, while not identical, have
  1647.   a lot in common.
  1648.  
  1649.   More recently there has been an initiative headed by David van Leeuwen
  1650.   (david@tm.tno.nl) to standardize the API for CD-ROM drives, putting
  1651.   common code in one place and ensuring that all drivers exhibit the
  1652.   same behaviour.  This is documented in the file
  1653.   /usr/src/linux/Documentation/cdrom/cdrom-standard.tex.  Several kernel
  1654.   drivers support this. I expect that by the next major kernel release
  1655.   (3.0?) all CD-ROM drivers will conform to this API.
  1656.  
  1657.   My book, Linux Multimedia Guide, goes into quite a bit of detail on
  1658.   how to program CD-ROM drives, especially for audio functions. See the
  1659.   end of the References section.
  1660.  
  1661.   6.18.  Why don't I see long filenames on this Windows CD-ROM?
  1662.  
  1663.   If you have a CD-ROM which has long filenames under Windows but not
  1664.   under Linux, it may be formatted using Microsoft's proprietary Joliet
  1665.   filesystem. See the next question for a solution.
  1666.  
  1667.   6.19.  Is Microsoft's Joliet filesystem supported?
  1668.  
  1669.   Microsoft has created an extension to the ISO CD-ROM format called
  1670.   Joliet. At the time of writing, support for Joliet was in progress and
  1671.   patches were available from  <http://www-
  1672.   plateau.cs.berkeley.edu/people/chaffee/joliet.html> or  <ftp://www-
  1673.   plateau.cs.berkeley.edu/pub/multimedia/linux/joliet/>.
  1674.  
  1675.   7.  References
  1676.  
  1677.   I have already mentioned the README files, typically installed in
  1678.   /usr/src/linux/Documentation/cdrom. These can be a gold mine of useful
  1679.   information.
  1680.  
  1681.   The following usenet FAQs are posted periodically to news.answers and
  1682.   archived at Internet FTP sites such as  <ftp://rtfm.mit.edu/>:
  1683.  
  1684.   ╖  alt.cd-rom FAQ
  1685.  
  1686.   ╖  comp.periphs.scsi FAQ
  1687.  
  1688.   ╖  Enhanced IDE/Fast-ATA/ATA-2 FAQ
  1689.  
  1690.   Several other Linux HOWTOs have useful information relevant to CD-ROM:
  1691.  
  1692.   ╖  SCSI HOWTO <http://sunsite.unc.edu/LDP/HOWTO/SCSI-HOWTO.html>
  1693.  
  1694.   ╖  Hardware Compatibility HOWTO
  1695.      <http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO.html>
  1696.  
  1697.   ╖  Sound HOWTO <http://sunsite.unc.edu/LDP/HOWTO/Sound-HOWTO.html>
  1698.  
  1699.   ╖  Kernel HOWTO <http://sunsite.unc.edu/LDP/HOWTO/Kernel-HOWTO.html>
  1700.  
  1701.   ╖  Distribution HOWTO <http://sunsite.unc.edu/LDP/HOWTO/Distribution-
  1702.      HOWTO.html>
  1703.  
  1704.   ╖  CD Writing HOWTO <http://sunsite.unc.edu/LDP/HOWTO/CD-Writing.html>
  1705.  
  1706.   At least a dozen companies sell Linux distributions on CD-ROM; most of
  1707.   them are listed in the Distribution HOWTO.
  1708.  
  1709.   The following Usenet news groups cover CD-ROM related topics:
  1710.  
  1711.   ╖  comp.publish.cdrom.hardware
  1712.  
  1713.   ╖  comp.publish.cdrom.multimedia
  1714.  
  1715.   ╖  comp.publish.cdrom.software
  1716.  
  1717.   ╖  comp.sys.ibm.pc.hardware.cd-rom
  1718.  
  1719.   ╖  alt.cd-rom
  1720.  
  1721.   ╖  alt.cd-rom.reviews
  1722.  
  1723.   The comp.os.linux newsgroups are also good sources of Linux specific
  1724.   information.
  1725.  
  1726.   There is a large archive of CD-ROM information and software at
  1727.   <ftp://ftp.cdrom.com/pub/cdrom/>.
  1728.  
  1729.   A FAQ document on IDE and ATA devices can be found at
  1730.   <ftp://rtfm.mit.edu/pub/usenet/news.answers/pc-hardware-faq/enhanced-
  1731.   IDE/> and at  <http://www.seagate.com/techsuppt/faq/faqlist.html>.
  1732.  
  1733.   Western Digital, the company that started the IDE protocol, has
  1734.   information available on the IDE protocol available on their FTP site
  1735.   at  <ftp://fission.dt.wdc.com/pub/standards/atapi>.
  1736.  
  1737.   A Web site dedicated to multimedia can be found at
  1738.   <http://viswiz.gmd.de/MultimediaInfo/>. Creative Labs has a Web site
  1739.   at  <http://www.creaf.com/>.
  1740.  
  1741.   The Linux Documentation Project has produced several books on Linux,
  1742.   including Linux Installation and Getting Started. These are freely
  1743.   available by anonymous FTP from major Linux archive sites or can be
  1744.   purchased in hardcopy format.
  1745.  
  1746.   The Linux Software Map (LSM) is an invaluable reference for locating
  1747.   Linux software. The LSM can be found on various anonymous FTP sites,
  1748.   including  <ftp://sunsite.unc.edu/pub/Linux/docs/LSM/>.
  1749.  
  1750.   The Linux mailing list has a number of "channels" dedicated to
  1751.   different topics. To find out how to join, send a mail message with
  1752.   the word "help" as the message body to majordomo@vger.rutgers.edu
  1753.   (Note: at time of writing these mailing lists were severely overloaded
  1754.   and a replacement was being sought).
  1755.  
  1756.   Finally, a shameless plug: If you want to learn a lot more about
  1757.   multimedia under Linux (especially CD-ROM and sound card applications
  1758.   and programming), check out my book Linux Multimedia Guide, ISBN
  1759.   1-56592-219-0, published by O'Reilly and Associates. As well as the
  1760.   original English version, French and Japanese translations are now in
  1761.   print. For details, call 800-998-9938 in North America or check the
  1762.   Web page  <http://www.ora.com/catalog/multilinux/noframes.html> or my
  1763.   home page  <http://www.pobox.com/~tranter/>.
  1764.  
  1765.